package com.zmj.sy.mom.srv.aps.bean.dto.feign.sinocam;

import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Getter
@Setter
public class SinoCamPushPlanReqDto {

    @ApiModelProperty("状态值 N：新增 C：修改 D：删除")
    @JsonProperty("State")
    private String state;

    @ApiModelProperty("下料计划单号")//计划单号（唯一标识）
    @JsonProperty("NestPlanID")
    private String nestPlanId;


    @ApiModelProperty("下料计划单名称")//计划单号（唯一标识）
    @JsonProperty("NestPlanName")
    private String nestPlanName;

    @ApiModelProperty("行项目号")//同一个下料计划号第一行为1，第二行为2，第三行为3依次增加
    @JsonProperty("Index")
    private Integer myindex;

    @ApiModelProperty("生产加工号")  //生产加工批次号，若没有值 默认传1 |工单包号
    @JsonProperty("ProcessingNo")
    private String processingNo;

    @ApiModelProperty("产品编号") //订单号
    @JsonProperty("ProductID")
    private String productId;

    @ApiModelProperty("部件编号")//父PLMID
    @JsonProperty("ComponentID")
    private String componentId;

    @ApiModelProperty("图纸编号")//PLMID
    @JsonProperty("ChartID")
    private String chartId;

    @ApiModelProperty("零件编码") //PLMID
    @JsonProperty("PartID")
    private String partId;

    @ApiModelProperty("零件名称（件号）")
    @JsonProperty("PartName")
    private String partName;

    @ApiModelProperty("零件类型")//1：板材  0：型材
    @JsonProperty("PartType")
    private String partType;

    @ApiModelProperty("版本标识预套：V1 生产：V2")
    @JsonProperty("VersionBrief")
    private String versionBrief;

    @ApiModelProperty("计划套料数量")//包下面套料数量
    @JsonProperty("PlanAmount")
    private BigDecimal planAmount;

    @ApiModelProperty("需求日期")//计划开始时间
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    @JsonProperty("NeedDate")
    private LocalDateTime needDate;

    @ApiModelProperty("工厂编号")
    @JsonProperty("FactoryID")
    private String factoryId;

    @ApiModelProperty("版本 默认为A")
    @JsonProperty("VersionBase")
    private String versionBase;

    @ApiModelProperty("切割类型 0:激光  1:等离子  2:火焰")
    @JsonProperty("OptionID")
    private String optionId;


}
